]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
status/keyboard: Fix hidden separator when menu changes while open
authorRui Matos <tiagomatos@gmail.com>
Tue, 18 Sep 2012 10:17:58 +0000 (12:17 +0200)
committerRui Matos <tiagomatos@gmail.com>
Tue, 18 Sep 2012 19:32:37 +0000 (21:32 +0200)
Due to the way the IBus API works we might get property changes while
the menu is already open. In that case the separator visibility logic
doesn't work since it only applies on menu open/close. This works
around that issue.

https://bugzilla.gnome.org/show_bug.cgi?id=682314

js/ui/status/keyboard.js

index 27dac0c5372adb761728df315b13f60adc7ea68a..d4fe7e40df310ae39b3348d1093539385ceecb54 100644 (file)
@@ -210,7 +210,8 @@ const InputSourceIndicator = new Lang.Class({
         this._currentSourceIndex = this._settings.get_uint(KEY_CURRENT_INPUT_SOURCE);
         this._xkbInfo = new GnomeDesktop.XkbInfo();
 
-        this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
+        this._propSeparator = new PopupMenu.PopupSeparatorMenuItem();
+        this.menu.addMenuItem(this._propSeparator);
         this._propSection = new PopupMenu.PopupMenuSection();
         this.menu.addMenuItem(this._propSection);
         this._propSection.actor.hide();
@@ -445,13 +446,16 @@ const InputSourceIndicator = new Lang.Class({
     },
 
     _buildPropSection: function() {
+        this._propSeparator.actor.hide();
         this._propSection.actor.hide();
         this._propSection.removeAll();
 
         this._buildPropSubMenu(this._propSection, this._properties);
 
-        if (!this._propSection.isEmpty())
+        if (!this._propSection.isEmpty()) {
             this._propSection.actor.show();
+            this._propSeparator.actor.show();
+        }
     },
 
     _buildPropSubMenu: function(menu, props) {